SOMMAIRE DES OPERATIONS SUR LES QUATERNIONS

CONTENU : Rédigé septembre 2013

Mathématiques appliquées 

I ALGEBRE DES QUATERNIONS

II QUATERNIONS UNITAIRES ET ROTATIONS

III QUATERNIONS- MATRICES 

IV QUATERNIONS- ROTATION INSTANTANEE 

MISE EN EQUATIONS AVEC QUATERNION

VI NORMALISATION D'UN QUATERNION

Note de calcul personnelle sur la normalisation

Bibliographie

 

 

Cette page est destinée aux utilisateurs avertis, qui utilisent les quaternions dans leur travaux. Elle résume ( je l'espère! ) l'essentiel des résultats concernant les opérations ou algorithmes mettant en jeu des quaternions. Chaque fois qu'il sera possible le lecteur peut conforter sa confiance avec un lien dédié à l'opération. Bien évidemment, ces liens m'ont été utiles, mon but n'étant de faire étalage de mes connaissances mais simplement d'en fournir et rassembler un maximum sur le même sujet: les quaternions.

L'utilisateur doit considérer cette page comme un formulaire ou un mémento.

NB :Lien externe en bleu et lien interne dans mon site en rouge

I ALGEBRE H DES QUATERNIONS :

1 - H espace vectoriel euclidien de dimension 4, ensemble des quadruplets Q = [ q0, q1, q2, q3 ] ou  les qi sont réels. L'écriture peut être en ligne ou en colonne, la transposition n'ayant pas le même sens que pour les vecteurs.

Base : e0 = [1 0 0 0 0] appelé scalaire, base du sous espace scalaire S, on confondra souvent S et R ou encore e0 et 1

     e1 = [0 1 0 0 ] = i , e2 = [0 0 1 0 ] = j , e3 = [0 0 0 1] = k, base du sous espace vectoriel P des quaternions dits purs  ou encore identifié à R3.

Q = [ q0, q1, q2, q3 ] =[ q0e0+ q1e1+ q2e2+ q3e3 ] = [ q0e0 + q1 i+ q2 j + q3k ] [ A + V ] --> Décomposition unique

A ou Ae0  partie scalaire indifféremment traitée comme quaternion neutre ou un réel, V partie vectorielle ( indifféremment traitée comme vecteur ou quaternion.)      H =S + P

Sous ensembles de H :

S : sous espace scalaire, dimension 1, isomorphe à R

P : sous ensemble des quaternions purs, de dimension 3,à partie scalaire nulle, dit vectoriel, isomorphe à R3, donc espace des vecteurs de la géométrie euclidienne classique. 

U : espace des quaternions unitaires ( norme 1 ), isomorphe à l'ensemble des rotations de l'espace R3.

 

Lien0

 

Lien1

 

Lien2

( Très théorique )

 

Lien3

 

2 - REGLES DE CALCUL :

Addition classique, associative et commutative.

Multiplication associative, non commutative :

Donnons la table de multiplication des vecteurs de base ( généralisation du calcul avec les complexes ) i.j = k  .... i² = j² = k² = -1

  1 i j k
1 1 i j k
i i - 1 k -j
j j -k -1 i
k k j -i -1
 

Lien

3 - PROPRIETES ET UTILISATION DU PRODUIT 

Le lecteur averti fera bien la différence entre les calculs dans H et ceux dans R ou R3 ( produit scalaire ou produit vectoriel ), 

Conséquences , les transpositions de calculs vectoriels dans H ou R3.:

Produit vectoriel et quaternions purs:

Lorsque 2 quaternions sont purs ( vecteurs de R3 ), le produit des quaternions représente le produit vectoriel

 

Lien

4 - OPERATIONS ELEMENTAIRES : : Conjugaison, norme, inverse

Conjugaison : Q = [ q0, q1, q2, q3 ] = [ s+V ]      Conjugué  Q* = [ q0, - q1, - q2, - q3 ] = [ s - V ]

Conséquences :

 

Règles (P+Q)* = P* + Q* Q** = Q

 

Norme : Q = [ q0, q1, q2, q3 ] = [ s+V ] 

Q unitaire <==< norme(Q) = 1

 

Lien0

 

Lien1

 

Lien2

Inverse :

Q unitaire ==>  Q-1 = Q*

 

 

Lien0

5 - PRODUIT SCALAIRE DE 2 QUATERNIONS( dot poduct en anglais )

Considérant un quaternion comme un vecteur de l'espace euclidien R4, on peut définir le produit scalaire de 2 quaternions classiquement par :

 

Angle entre 2 quaternions:

Toujours éléments de R4, on définit naturellement l'angle entre 2 quaternions par 

 

Lien

   

II QUATERNIONS ET PRODUT DE ROTATIONS :

L'essentiel des applications pratiques de géométrie ou de paramétrage en mécanique, robotique,...

1 - LES QUATERNIONS UNITAIRES :

Tout quaternion unitaire peut s'écrire avec un angle q et un vecteur U de R3.:

2 - APPLICATION LINEAIRE DE R3 DANS R3 :

On définit une application de P, ensemble des quaternions purs ( donc des vecteurs, donc de R3 ) dans P, par

Le vecteur V est transformé en W, par une ROTATION D'ANGLE q AUTOUR DE L'AXE ORIENTE PAR U

3 - COMPOSITION DES ROTATIONS DE R3 DANS R3 :                                                                     ATTENTION : Rubrique très importante

Dans les applications pratiques, les quaternions définissent des rotations successives transformant notamment le repère fixe R1 en une suite de repères R2, ... Rn..

TRAVAIL DANS LE REPÈRE FIXE : c.a.d  tous les quaternions sont exprimés dans le repère fixe, alors la multiplication s'opèrent comme pour les applications, inverse de l'ordre des rotations..

Q = Qn-1.Qn-2.....Q1

TRAVAIL AVEC EXPRESSION DANS LES REPÈRES INTERMEDIAIRES : c.a.d  chaque quaternion Qk, est exprimé dans son repère de départ Rk. La multiplication s'opère alors dans l'ordre naturel des rotations.

Q = Q1.Q2......Qn-1

Avantage : L'expression des quaternions est toujours simple.

Voir alors l'écriture en cascade des quaternions, avec les rotations se faisant toujours autour d'un des axes du repère intermédiaire.

avec les règles opératoires vues plus haut

Exemples :  Euler, Cardan

 

Lien0

Lien1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Lien3

 

 

 

 

 

Euler

Cardan

4 - REPRESENTATION COMPLEXE DES ROTATIONS DE R3 DANS R3 :

Les quaternions unitaires éléments de P peuvent se représenter sous forme complexe ( qui généralise Z = reiq =r (cosq + i sinq))

 

Lien

4 - QUATERNIONS ET GEOMETRIE :

a) Symétrie par rapport à un plan ou 

réflexion ( effet miroir )

U est un unitaire normal à P

Le transformé d'un vecteur V est W tel que :

b) Projection sur un plan : Plan P  orienté par U  

c) Projection sur un axe unitaire U

c) Relations symétriques entre 2 vecteurs

Vecteurs U, V représentés par les quaternions purs U et V.

Les résultats ressemblent à ceux ci-dessus

Réjection de U par rapport à V

Projection de U sur V

Réflexion de U par rapport à V

Lien

d) Relations symétriques entre 2 vecteurs

Décomposition d'un quaternion sur un autre

Partie parallèle

Partie orthogonale

 

Partie parallèle = projection de U sur V

Partie orthogonale = Réjection de U par rapport à V

NB formules comme au dessus

>

e) Similitude :

Tout quaternion peut se mettre sous la forme ci contre

La transformation de R3 W --->L(W) est manifestement une rotation d'angle q et d'axe U suivie d'une homothétie de rapport ||Q||², donc une similitude

 

Ci-dessous quelques rotations presque évidentes

q0

q1 q2 q3 Rotation
1 0 0 0 Identité
0 1 0 0 Rotation 180° autour de i
0 0 1 0 Rotation 180° autour de j
0 0 0 1 Rotation 180° autour de k
0 0 Rotation 90° autour de i
0 0 Rotation 90° autour de j
0 0 Rotation 90° autour de k
0 0 Rotation - 90° autour de i
0 0 Rotation - 90° autour de j

 

0 0 Rotation - 90° autour de k

 

III QUATERNIONS - MATRICES - CHANGEMENTS DE REPERE :

En mécanique du solide , les mouvements sont généralement paramétrés par des angles, donc quaternions et matrices trouvent naturellement leur champ d'application. Comme les quaternions demandent moins de calculs, leur usage est souvent conseillé.

1 - MATRICES CALCULEES EN FONCTION DU QUATERNION:

 
  

 

Quaternion Q

 

 

Matrice de rotation R ( entre bases )

Matrice de passage P ( entre composantes )

Lien
 

2 - QUATERNION CALCULE EN FONCTION D'UNE DES MATRICES

Rappelons que R = P-1  = P* (transposée ), donnons le calcul avec la matrice de passage P.

 

Relations aisées à vérifier

Les 4 premières relations donnent q0, q1, q2, q3, au signe près.

Nécessairement l(un des qi est non nul, car le quaternion est unitaire. donc par exemple c'est q0 qui est non nul, prenons le positif. 

Comme les 6 dernières relations contiennent 4 fois q0, elles déterminent le signe de toutes les autres composantes.

NB : En général, c'est l'initialisation qui détermine l'un des signes et donc tous les signes.

 

Lien

     

IV QUATERNIONS ET ROTATION INSTANTANEE :

En mécanique du solide ou mécanique spatiale, les mouvements paramétrés par des angles et représentés par des quaternions, feront inévitablement apparaître des dérivées et notamment la dérivée du quaternion d'attitude, que ce soit dans le repère fixe ( souvent inertiel ) ou dans le repère mobile ( souvent lié au solide S ).

Il faut donc savoir calculer la dérivée d'un quaternion fonction du temps t.

1 - VECTEUR ROTATION INSTANTANEE ( R mobile/Ra fixe )  :

 

P est l'ensemble vectoriel des quaternions purs, isomorphe à R3

est le quaternion représentant la rotation de R/Ra, exprimé dans la même base que le quaternion Q ( soit R soit Ra )

 

Conclusion

Rotation absolue exprimée en axes inertiels I, J, K ou X, Y, Z

 

Rotation absolue exprimée en axes mobiles i, j, k ou x, y, z liés au satellite

Explicitée ci-dessous

Lien

Quaternion rotation en axes inertiels I J K

 

Quaternion rotation en axes mobiles i j k

 

Lien

2 - DERIVEE DU QUATERNION D'ATTITUDE

 EN AXES INERTIELS  I J K

 

3 - DERIVEE DU QUATERNION D'ATTITUDE

 EN AXES MOBILES i j k

 

Lien

 

V QUATERNIONS ET MISE EN EQUATIONS DE L'ATTITUDE :

Il s'agit ici de la mise en équations du mouvement d'un solide autour de son centre d'inertie, ce que l'on nomme l'attitude ( avion en vol, contrôle d'un satellite en orbite...)

Généralement les paramètres sont des angles, le choix est varié et dépend du mobile. La difficulté avec des angles, est que leur définition géométrique peut entraîner des cas de non définition, avec comme conséquences de possibles "division par zéro" que les calculateurs n'aiment pas. 

L'utilisation des quaternions d'attitude écarte en partie ce problème, mais il en reste un spécifique aux quaternions purs: ils doivent rester de norme 1, c'est une condition à surveiller.

NB : Dans les équations qui suivent le repère R est lié au solide et principal d'inertie.

 

1- COMPORTEMENT DIFFERENTIEL DU QUATERNION EN AXES LIES AU SOLIDE S:

Système différentiel de 4 équations donnant Q(t) connaissant la rotation instantanée.

NB : Au cours de l'i,tégration, il est nécessaire et indispensable de vérifier à chaque pas que le quaternion reste unitaire dans son évolution

 

Lien

 

2- EQUATION D'ATTITUDE EN AXES LIES AU SOLIDE S:

Système différentiel de 4 équations donnant Q(t) connaissant la rotation 

 

Lien

3- SYSTEME DIFFERENTIEL COMPLET DONNANT VECTEUR ROTATION ET QUATERNION:

Rassemblant les 2 résultats précédents, le système différentiel de 7 équations qui donne Q(t) ( 4 inconnues ) et le vecteur rotation ( 3 inconnues p, q, r ), avec les notations déjà citées plus haut

+ Vérification à chaque pas de la normalisation du quaternion  = NORMALISATION DU QUATERNION

 

Lien

3 - NORMALISATION DU QUATERNION :

Le quaternion Q = ( q0 q1 q2 q3 ) représentant une rotation est obligatoirement unitaire et doit le rester durant toute l'intégration.

Dans l'espace R4 le vecteur Q à quatre composantes voit son extrémité parcourir la sphère unité E²+ X²+Y²+Z² =1. or il est clair que la différentielle de Q, soit dQ, est dans le plan tangent à cette sphère donc L'extrémité de Q'(t+dt) = Q(t)+Q'(t)dt n'est pas sur la sphère en général, même si le calcul utilise un algorithme d'évaluation de dQ=Q'(t)dt  avec plusieurs points intermédiaires calculés en des temps entre t et t+dt.

Il faut donc ASTREINDRE Q à rester au plus près de la sphère unité, c'est la NORMALISATION DU QUATERNION

a) Pourquoi est-ce capital?

Parce que si au cours du calcul de Q  = (cosq + U sinq) = ( q0 q1 q2 q3 )  on veut évaluer q et la norme de Q supérieure à 1 ( même très légèrement ), le calculateur n'aimera pas !!!!

Il faut donc se prémunir de cette éventualité, à chaque pas de calcul.

b) Suggestions de solutions?

N'étant pas un spécialiste de l'intégration numérique ( bien que j'ai pu en réaliser de nombreuses, en "amateur", sous Matlab), je vous livre quelques idées sérieuses suite à mes lectures sur Internet.

1 - Première idée de normalisation:

Elle consiste à calculer le quaternion Q(t), par une intégration de pas constant Dt, à l'aide de la matrice que j'appellerai matrice dérivée normalisanteCeci suppose donc que l'on puisse fixer le pas d'intégration.

puis par un algorithme classique d'intégration, calculer  Q(t+Dt ) = Q(t)+DQN DQN  est l'accroissement du quaternion durant Dt

Voir les détails explicatifs

Remarque : si on pose x = ||Q|| on a ||Q1||=F(x)=(3-x)*x/2 dont la dérivée s'annule en x=1, donnant un maximum F(1)=1. Ceci nous permet d'affirmer que ||Q1|| est toujours inférieure ou égale à 1 et si Q est unitaire alors Q1 l'est aussi. L'inversion des lignes trigonométriques à partir de Q est donc toujours assurée.

Précision : Pour ce qui est des vérifications? j'ai pu vérifier un mouvement de Poinsot, et notamment un calcul d'énergie cinétique qui doit rester constante, avec une erreur relative de 6 10-10, entre le début et la fin du calcul, sur une durée de 8000 secondes, avec un pas de 0.5 s. 

1 - Deuxième idée de normalisation:

Elle ressemble beaucoup à la première, mais utilise un gain K, qu'il faut choisir avec soin ( Un premier choix pourrait être K = 1/ Dt )

- Calculer un terme correctif de la longueur du quaternion ( voir note de calcul ci-après)

- Calculer l'accroissement DQ à partir de sa dérivée et d'une méthode d'intégration ( RK4 par exemple ..)

- Calculer un terme correctif de la longueur du quaternion ( voir note de calcul ci-après)

NB1 : La normalisation reste parfaite à chaque pas

NB2 :Sur un cas concret d'intégration durant un temps de 42 jours environ, avec un pas de 0.5 seconde, avec un système conservatif, l'erreur relative sur l'énergie n'a pas dépassé le millionième.

 

 

 

Lien1

 

 

 

 

 

 

 

Lien2

NOTE DE CALCUL PERSONNELLE:

Je me suis posé la question "pourquoi un tel choix ?

Raisonnons sur la méthode d'intégration  la plus basique, celle d'Euler. Supposons une étape où le quaternion n'est pas normé, alors sa longueur est  || Q || = 1+

On reconnaît dans le premier terme matriciel, l'accroissement DQ du quaternion sans normalisation. Dans le second terme on trouve la correction DQapportée par la normalisation.

Le quaternion Q1  est colinéaire à Q et sa longueur est :

On constate donc que le quaternion Q(t) est normalisé, et avec garantie que Q1(t) a une norme inférieure à 1, avant même d'être incrémenté d'un terme du deuxième ordre par rapport à e .

Ce qui signifie que si la précision sur les composantes du quaternion est de 10-9  sa longueur est 1 à 10-16 ou 10-17 près.

CONCLUSION :

A chaque pas de calcul, quel que soit la méthode d'intégration, on garde Q1 à la place de Q avec un calcul simple 

NB : Stockage des résultats:

C'est bien évidemment le quaternion Q1(t) qu'il faut stocker en sortie des calculs, avec le double avantage :

- Être normalisé 

- Son module est toujours inférieur à 1, avec une grande précision.

NB : En effet Q(t+Dt ) = Q1(t)+DQ  peut très bien avoir  une norme plus grande que 1, vu que DQ  est normal à Q pouvant faire sortir l'extrémité de Q(t+Dt ) de la sphère unité.

NB : Je souhaite que le ( ou les ) lecteurs qui utiliseront cette méthode me renseignent

 sur la robustesse du calcul. Je me ferai alors plaisir de les citer avec leur exemple pratique.

LIENS BIBLIOGRAPHIQUES INTERNET

Quaternions et traitement des couleurs et des images

http://stackoverflow.com/questions/11667783/quaternion-and-normalization

Idées sur la normalisation  intéressant pour un mécanicien, écrit en anglais

Intégration par la méthode de Runge-Kutta

Optimisation des erreurs sur l'intégration des quaternions d'Euler, suivant le pas et la méthode ( Runge Kutta ou Crouch Grossman   Excellente étude en anglais )

 

Guiziou Robert janvier 2016